package com.renu.jdependencyanalyser.model;

import java.util.HashSet;
import java.util.Set;

public class ClassModel {
    // org.example.soot.SootOptionSet
    private String clsSig;
    private String pck;
    private String extendClsSig;
    private Set<String> methodSigs;
    private Set <String > implementClssSig;

    @Deprecated
    private Set<String> fields;

    private Set <String> srcClsSig;

    private Set <String> tgtClsSig;


    private String outerExtendClsSig;




    private Set<String>  outerImplementClsSig;

    private Set<String> outerDependClsSig;







    private Set<String> outerfield;


    public ClassModel(String className) {
        clsSig = className;
        methodSigs = new HashSet<>();
        fields = new HashSet<>();
        pck = "";
        extendClsSig = "";
        implementClssSig = new HashSet<>();
        outerImplementClsSig = new HashSet<>();
        outerDependClsSig = new HashSet<>();
        outerfield = new HashSet<>();
        srcClsSig = new HashSet<>();
        tgtClsSig = new HashSet<>();

    }

    public Set<String> getSrcClsSig() {
        return srcClsSig;
    }

    public void setSrcClsSig(Set<String> srcClsSig) {
        this.srcClsSig = srcClsSig;
    }

    public Set<String> getTgtClsSig() {
        return tgtClsSig;
    }

    public void setTgtClsSig(Set<String> tgtClsSig) {
        this.tgtClsSig = tgtClsSig;
    }

    public Set<String> getOuterDependClsSig() {
        return outerDependClsSig;
    }

    public String getOuterExtendClsSig() {
        return outerExtendClsSig;
    }

    public void setOuterExtendClsSig(String outerExtendClsSig) {
        this.outerExtendClsSig = outerExtendClsSig;
    }

    public Set<String> getOuterImplementClsSig() {
        return outerImplementClsSig;
    }

    public void setOuterImplementClsSig(Set<String> outerImplementClsSig) {
        this.outerImplementClsSig = outerImplementClsSig;
    }

    public String getExtendClsSig() {
        return extendClsSig;
    }

    public void setExtendClsSig(String extendClsSig) {
        this.extendClsSig = extendClsSig;
    }

    public Set<String> getImplementClssSig() {
        return implementClssSig;
    }

    public void setImplementClssSig(Set<String> implementClssSig) {
        this.implementClssSig = implementClssSig;
    }

    public Set<String> getOuterfield() {
        return outerfield;
    }

    public void setOuterfield(Set<String> outerfield) {
        this.outerfield = outerfield;
    }

    public void addMethod(String methodSig) {
        methodSigs.add(methodSig);
    }

    public String getClsSig() {
        return clsSig;
    }

    public void setClsSig(String clsSig) {
        this.clsSig = clsSig;
    }

    public String getPck() {
        return pck;
    }

    public void setPck(String pck) {
        this.pck = pck;
    }



    public Set<String> getMethodSigs() {
        return methodSigs;
    }

    public void setMethodSigs(Set<String> methodSigs) {
        this.methodSigs = methodSigs;
    }

    public Set<String> getFields() {
        return fields;
    }

    public void setFields(Set<String> fields) {
        this.fields = fields;
    }


    public void addField(String fieldSig) {
        this.fields.add(fieldSig);
    }

    public void addOuterDpndCls(String typeFromDescriptor) {
        this.outerDependClsSig.add(typeFromDescriptor);
    }
}
